Uno Platform:.NET 跨平台UI框架的另一选择
前言
使用.NET构建跨平台应用已经不是什么新鲜事了,我们或许已经知道可以使用微软官方的MAUI与社区支持的Avalonia,今天介绍一款同样是社区支持的.NET 跨平台UI框架:UNO Platform。
Uno Platform介绍
Uno 平台是一个开源平台,用于快速构建单一代码库原生移动、Web、桌面和嵌入式应用程序。
它允许 C# 和 WinUI XAML 和/或 C# 代码在所有目标平台上运行,同时允许你控制每个像素。它开箱即用地支持 Fluent、Material 和 Cupertino 设计系统。Uno 平台实现了越来越多的 WinRT 和 WinUI API,例如 Microsoft.UI.Xaml,以使 WinUI 应用程序能够在具有本机性能的所有平台上运行。
在 Visual Studio 中使用 Windows 中的 WinUI 工具(如 XAML 热重载和 C# 热重载),尽可能在 Windows 上生成应用程序,然后验证应用程序是否在 iOS、Android、macOS 和 WebAssembly 上运行。
仓库地址:https://github.com/unoplatform/uno
官网:https://platform.uno
实践
到底好不好用得试了才知道。
在vs中安装Uno Platform扩展:
创建一个新项目,搜索Uno,选择以下项目模板:
避坑
项目路径不要包含中文,不然会报错。
会跳出模板向导。
选择框架:
选择平台,这里以桌面端与Android端为例:
选择MVVM模式:
其他默认,点创建。
项目结构如下所示:
运行桌面端。
选择框架,再选择启动模式:
以Windows桌面端 Unpackaged模式调试为例:
运行安卓端,切换框架,选择虚拟机还是物理机:
运行效果如下:
现在简单的入门程序已经完成了,如果你想进一步探索,推荐Uno.Samples这个仓库进行下一步的学习。
Uno.Samples仓库地址:https://github.com/unoplatform/Uno.Samples
写在最后
到这里可能会有个疑惑,.NET跨平台UI框架已经有MAUI、Avalonia、Uno Platform那构建跨平台项目的时候应该怎么选择呢?
我个人的看法是你的项目你做主,你想用啥都行,MAUI是微软官方的,文档资料方面可能是最多的也最容易找到的,但是不支持Linux是个硬伤,Avalonia完美支持Linux,但在移动端的支持可能没有Uno好,Uno 的桌面端可能没有Avalonia好,这两个的缺点都是国内文档资料都比较少,适合喜欢自己捣鼓的人,使用过程中的可能会遇到一些问题,网上也没太多资料,最好是去github官方仓库的Issues找找看。